package com.yanqu.road.entity.activity.wanyao.data;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.DataStatus;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.wanyao.entity.WanYaoBlockData;
import com.yanqu.road.entity.activity.wanyao.entity.WanYaoBuffData;
import com.yanqu.road.entity.activity.wanyao.entity.WanYaoLevelData;
import com.yanqu.road.entity.activity.wanyao.entity.WanYaoMonsterData;

import java.util.Map;

@FieldTypeAnnotation(tableName = "t_u_wan_yao_user_data",desc = "万妖行玩家数据")
public class WanYaoUserData extends DataObject {
    @FieldTypeAnnotation(desc = "活动id",select = true,update = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "用户id",select = true,update = true)
    private long userId;
    @FieldTypeAnnotation(desc = "妖力")
    private long monsterPower;
    @FieldTypeAnnotation(desc = "妖王等级")
    private int monsterKingLevel;
    @FieldTypeAnnotation(desc = "妖王经验")
    private long monsterExp;
    @FieldTypeAnnotation(desc = "buff信息")
    private Map<Integer, WanYaoBuffData> buffDataMap;
    @FieldTypeAnnotation(desc = "体力")
    private int power;
    @FieldTypeAnnotation(desc = "上次恢复体力时间")
    private long lastPowerRecTime;
    @FieldTypeAnnotation(desc = "当前步数")
    private int steps;
    @FieldTypeAnnotation(desc = "惊魂花数量")
    private long flowerNum;
    @FieldTypeAnnotation(desc = "最高关卡")
    private WanYaoLevelData levelData;
    @FieldTypeAnnotation(desc = "当前盘面")
    private Map<Integer,WanYaoBlockData> nowBoardData;
    @FieldTypeAnnotation(desc = "怪物列表")
    private Map<Integer, WanYaoMonsterData> monsterDataMap;
    @FieldTypeAnnotation(desc = "当前回合是否已经增加步数过")
    private boolean hasAddStep;
    @FieldTypeAnnotation(desc = "本次活动总消耗体力")
    private int totalCostPower;
    @FieldTypeAnnotation(desc = "已获得宝箱的层数")
    private int hasGetBoxLevel;
    @FieldTypeAnnotation(desc = "引导步骤 0是没引导 1是已经操作上阵 2是引导结束")
    private int guideStep;



    public int getActivityId() {
        return activityId;
    }
    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public long getMonsterPower() {
        return monsterPower;
    }
    public void setMonsterPower(long monsterPower) {
        if (this.monsterPower != monsterPower) {
            this.monsterPower = monsterPower;
            setOp(DataStatus.Update);
        }
    }

    public int getMonsterKingLevel() {
        return monsterKingLevel;
    }
    public void setMonsterKingLevel(int monsterKingLevel) {
        if (this.monsterKingLevel != monsterKingLevel) {
            this.monsterKingLevel = monsterKingLevel;
            setOp(DataStatus.Update);
        }
    }

    public long getMonsterExp() {
        return monsterExp;
    }
    public void setMonsterExp(long monsterExp) {
        if (this.monsterExp != monsterExp) {
            this.monsterExp = monsterExp;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.wanyao.entity.WanYaoBuffData> getBuffDataMap() {
        return buffDataMap;
    }
    public void setBuffDataMap(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.wanyao.entity.WanYaoBuffData> buffDataMap) {
        if (null == buffDataMap){
            return;
        }
        if (this.buffDataMap == null || !this.buffDataMap.equals(buffDataMap)) {
            this.buffDataMap = buffDataMap;
            setOp(DataStatus.Update);
        }
    }

    public int getPower() {
        return power;
    }
    public void setPower(int power) {
        if (this.power != power) {
            this.power = power;
            setOp(DataStatus.Update);
        }
    }

    public long getLastPowerRecTime() {
        return lastPowerRecTime;
    }
    public void setLastPowerRecTime(long lastPowerRecTime) {
        if (this.lastPowerRecTime != lastPowerRecTime) {
            this.lastPowerRecTime = lastPowerRecTime;
            setOp(DataStatus.Update);
        }
    }

    public int getSteps() {
        return steps;
    }
    public void setSteps(int steps) {
        if (this.steps != steps) {
            this.steps = steps;
            setOp(DataStatus.Update);
        }
    }

    public long getFlowerNum() {
        return flowerNum;
    }
    public void setFlowerNum(long flowerNum) {
        if (this.flowerNum != flowerNum) {
            this.flowerNum = flowerNum;
            setOp(DataStatus.Update);
        }
    }

    public WanYaoLevelData getLevelData() {
        return levelData;
    }
    public void setLevelData(WanYaoLevelData levelData) {
        if (null == levelData){
            return;
        }
        if (this.levelData == null || !this.levelData.equals(levelData)) {
            this.levelData = levelData;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.wanyao.entity.WanYaoBlockData> getNowBoardData() {
        return nowBoardData;
    }
    public void setNowBoardData(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.wanyao.entity.WanYaoBlockData> nowBoardData) {
        if (null == nowBoardData){
            return;
        }
        if (this.nowBoardData == null || !this.nowBoardData.equals(nowBoardData)) {
            this.nowBoardData = nowBoardData;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.wanyao.entity.WanYaoMonsterData> getMonsterDataMap() {
        return monsterDataMap;
    }
    public void setMonsterDataMap(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.wanyao.entity.WanYaoMonsterData> monsterDataMap) {
        if (null == monsterDataMap){
            return;
        }
        if (this.monsterDataMap == null || !this.monsterDataMap.equals(monsterDataMap)) {
            this.monsterDataMap = monsterDataMap;
            setOp(DataStatus.Update);
        }
    }

    public boolean getHasAddStep() {
        return hasAddStep;
    }
    public void setHasAddStep(boolean hasAddStep) {
        if (this.hasAddStep != hasAddStep) {
            this.hasAddStep = hasAddStep;
            setOp(DataStatus.Update);
        }
    }

    public int getTotalCostPower() {
        return totalCostPower;
    }
    public void setTotalCostPower(int totalCostPower) {
        if (this.totalCostPower != totalCostPower) {
            this.totalCostPower = totalCostPower;
            setOp(DataStatus.Update);
        }
    }

    public int getHasGetBoxLevel() {
        return hasGetBoxLevel;
    }

    public void setHasGetBoxLevel(int hasGetBoxLevel) {
        if (this.hasGetBoxLevel != hasGetBoxLevel) {
            this.hasGetBoxLevel = hasGetBoxLevel;
            setOp(DataStatus.Update);
        }
    }

    public int getGuideStep() {
        return guideStep;
    }

    public void setGuideStep(int guideStep) {
        if (this.guideStep != guideStep) {
            this.guideStep = guideStep;
            setOp(DataStatus.Update);
        }
    }
}
